package com.jia.leetCode;
/**
 * 231.2的幂
 * 
 * 给定一个整数，编写一个函数来判断它是否是 2 的幂次方。

示例 1:

输入: 1
输出: true
解释: 20 = 1
示例 2:

输入: 16
输出: true
解释: 24 = 16
示例 3:

输入: 218
输出: false

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/power-of-two
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 * @author Administrator
 *
 */
public class Pro0231 {
    public boolean isPowerOfTwo(int n) {
        //return (n > 0) && (1 << 30) % n == 0;
        //return (n > 0) && (n &(n-1)) == 0;
        //n & -n 表示二进制里最右的一个1
        return (n > 0) && (n & -n) == n;
    }
    public boolean isPowerOfTwo2(int n) {
        if(n <= 0)  return false;
        return (n&(n-1)) == 0;
     }
}
